# -*- coding: utf-8 -*-
# @file    : auto-macro.py
# @Date    : 2020/10/15
# @Author  :
# @Version : 1.0.0
import subprocess
import os
import time

from core import sub_process
from core.util import get_args_for_reloading
from core.util import options


def reload(interval):
    """
    脚本自动重启
    :param interval: 重启等待间隔
    :return:
    """

    process = os.environ.get('EXEC_SUB_PROCESS')
    if process:
        print("[NOTE]  当前脚本以自动重启方式运行.")
        print("[NOTE]  使用 {system[quit::]} 动作退出脚本会触发自动重启.")
        print("[NOTE]  启动参数 --reload=False 可以禁用自动重启.")
        sub_process.main()
    else:
        while 1:
            env = os.environ.copy()
            env['EXEC_SUB_PROCESS'] = '1'
            reload_args = get_args_for_reloading()
            subprocess.call(reload_args, env=env, close_fds=True)
            print()
            print("[RELOADER] 脚本将在 %d 秒后自动重启..." % interval)
            print("[RELOADER] 脚本将在 %d 秒后自动重启..." % interval)
            print("[RELOADER] 脚本将在 %d 秒后自动重启..." % interval)
            print()
            time.sleep(interval)


if __name__ == '__main__':
    need_reload = options.get('--reload', '')
    if need_reload == 'False':
        sub_process.main()
    else:
        reload(1)
